import VueRouter from 'vue-router'
//3
//在这段代码中， this关键字指向VueRouter.prototype[prop]函数所属的对象，也就是  VueRouter  的实例对象。 当我们调用  VueRouter.prototype[prop]  函数时，通过  nativeFn.call(this, path, success, error)  的方式，将  this  作为第一个参数传递给  nativeFn  函数。这样做的目的是确保在执行  nativeFn  函数时，它内部的  this  指向的是当前的  VueRouter  实例对象。 通过这种方式，我们可以在对  VueRouter.prototype[prop]  函数进行增强时，保留原有函数的上下文环境，并在增强后的函数中使用相同的上下文
export const enhance = function (prop) {
  const nativeFn = VueRouter.prototype[prop]
  VueRouter.prototype[prop] = function (path, success, error = () => {}) {
    return nativeFn.call(this, path, success, error)
  }
}
